/*********************************************************************
	Rhapsody	: 8.4 
	Login		: kqbi
	Component	: iLPRServerComponent 
	Configuration 	: iLPRServerConfig
	Model Element	: iLPR_Server
//!	Generated Date	: Thu, 13, Feb 2020  
	File Path	: ../../server/iLPR_Server.h
*********************************************************************/

#ifndef FPM_Server_H
#define FPM_Server_H

#include <oxf.h>
//## package server
#include "af/ArcFaceEngine.h"
//## class iLPR_Server
#define FACE_FEATURE_SIZE 1032
class iLPR_FSW;

class ArcFaceEngine;

class AbstractDb;

class Store;

class HttpServer;

class HttpService;

class FPM_Server {
    ////    Constructors and destructors    ////

public :

    //## operation iLPR_Server()
    FPM_Server();

    //## operation ~iLPR_Server()
    ~FPM_Server();

    ////    Operations    ////

    //## operation cleanupObjects()
    void cleanupObjects();

    //## operation createDatabaseStore()
    bool createDatabaseStore();

    //## operation createFSW()
    bool createFPM();

    //## operation createHttpServer()
    bool createHttpServer();

    //## operation init()
    bool init();
int test(std::string path);
    void test1(std::vector<std::string> images);
    //## operation run()
    bool run();

    //## operation shutDown()
    void shutDown();
    void Compare();
    void loadThumbnailImages();
    ////    Attributes    ////

    std::shared_ptr<AbstractDb> _abstractDb;        //## attribute _abstractDb

    std::shared_ptr<iLPR_FSW> _fsw;        //## attribute _fsw

    std::shared_ptr<HttpServer> _httpServer;        //## attribute _httpServer

    std::shared_ptr<ArcFaceEngine> _lpr;        //## attribute _lpr

    bool _running;        //## attribute _running

    std::shared_ptr<Store> _store;        //## attribute _store

    std::shared_ptr<HttpService> _httpService;

    ArcFaceEngine _imageFaceEngine;

    ASF_FaceFeature _curStaticImageFeature;

    bool _curStaticImageFRSucceed;

    std::vector<ASF_FaceFeature> _featuresVec;
};

#endif
/*********************************************************************
	File Path	: ../../server/iLPR_Server.h
*********************************************************************/
